
import Dialog from '@vant/weapp/dialog/dialog';

var api = require('../../../utils/api.js')
var $ = require('../../../utils/util.js')
var regeneratorRuntime = require('../../../utils/runtime.js')
var app = getApp()

Page({
  data: {
    info: null, // 详情数据
    tabList: [
      { name: '工程详情', type: 1 }, 
      { name: '工作提交', type: 3 }, 
      { name: '工作详情', type: 2 }, 
      // { name: '项目资料', type: 4 }
    ], // tab
    list: ['', '', '',],
    currentTab: 1,
    id:0, // 工程id
    _longitude: 116.3972282409668, //当前地图位置的中心点(默认定位北京)
    _latitude: 39.90960456049752, //当前地图位置的中心点(默认定位北京)
    _scale: 13, //当前地图的缩放系数
    markers:[//地图图标
      {
      id: 0
      ,iconPath: "/assets/map_localtion_red.png"
      ,longitude: 116.3972282409668
      ,latitude: 39.90960456049752
      ,width: 30
      ,height: 30
      }
    ],
    project:{

    },
    work:{

    },
    addWork:{
      projectId:0,// 工程id
      itemManage:"",// 项目监理
      constructionUser:"",// 施工人员
      constructionAddress:"",// 施工地点
      workStartTime:"",// 工作开始时间
      workEndTime:"",// 工作结束时间
      workContent:"",// 今日工作内容
      coordinateIssue:"",// 需协调问题
      issueEndTime:"",// 问题结束时间
      tomorrowPlan:"",// 明日工作计划
      clockImg:"",// 打卡照片
      entranceImg1:"",// 施工入场照片1
      entranceImg2:"",// 施工入场照片2
      entranceImg3:"",// 施工入场照片3
      constructionImg1:"",// 施工中照片1
      constructionImg2:"",// 施工中照片2
      constructionImg3:"",// 施工中照片3
      finishImg1:"",// 施工结束照片1
      finishImg2:"",// 施工结束照片2
      finishImg3:"",// 施工结束照片3
      projectEndTime:"",// 工程预估结束时间
      restDays:0,// 休息天数
    },
    pinkColumns:[ { type: "", text: "尚无工作记录" }],//固定日期选择
    isShowTimePicker:false,
    isShowTimeStart:false,//是否弹出开始时间  
    isShowTimeEnd:false,//是否弹出结束时间
    isShowTextarea1:false,//文本域填写
    isShowTextarea2:false,//文本域填写
    isShowTextarea3:false,//文本域填写
    isFocus1: false, //是否获取文本框的焦点
    isFocus2: false, //是否获取文本框的焦点
    isFocus3: false, //是否获取文本框的焦点
    isShowIssueEndTime:false,//问题解决时间选择器
    isShowProjectEndTime:false,//问题解决时间选择器
    projectRate:{},//工程进度
    isShowSubmitButton:true,//是否显示提交按钮
    stationsList:[],//厂站列表
    isShowStartProjectPanel:false,//开工确认弹窗
    isShowFinishProjectPanel:false,//完工确认弹窗
  },
  onLoad: function (options) {
    if ('id' in options){
      this.setData({
        projectId: options.id,
        "addWork.projectId":options.id
      })
    }
    this._getProject(); // 工程详情
    this._checkTodayTask();//检查今日任务是否已经提交
  },
  _getProject(){
      api.$get(api.projectManage.projectInfo+"/"+this.data.projectId,{}).then((res)=>{

        var maps=res.data.maps;
        var mapList=[];
        for(var i=0;i<maps.length;i++){
          var map={
            id: maps[i].id
            ,iconPath: "/assets/map_localtion_red.png"
            ,longitude: maps[i].longitude
            ,latitude: maps[i].latitude
            ,width: 30
            ,height: 30
            ,title:maps[i].name
          }
          mapList.push(map);
        }
        this.setData({
          projectRate:res.data.rate,
          project:res.data.projectInfo,
          markers:mapList,
          _latitude: mapList.length>0? mapList[0].latitude : 39.90960456049752,
          _longitude:mapList.length>0? mapList[0].longitude :  116.3972282409668
        })
        console.log(this.data.project)
    });
  },
  _getWork(){
    if($.isNull(this.data.work.taskTime)){
      $.toast("尚不存在工作记录");
      return;
    }
    api.$get(api.projectManage.workInfo+"/"+this.data.projectId,{taskTime:this.data.work.taskTime}).then((res)=>{
        this.setData({
          work: res.data
        })
    })
  },
  _addWork(){
      if($.isNull(this.data.addWork.workStartTime)){
        $.toast("请填写开始时间")
      }else if($.isNull(this.data.addWork.workEndTime)){
        $.toast("请填写结束时间")
      }else if($.isNull(this.data.addWork.itemManage)){
        $.toast("请填写项目监理")
      }else if($.isNull(this.data.addWork.constructionUser)){
        $.toast("请填写施工人员")
      }else if($.isNull(this.data.addWork.constructionAddress)){
        $.toast("请填写施工地点")
      }else if($.isNull(this.data.addWork.workContent)){
        $.toast("请填写今日工作内容")
      }else if(($.isNull(this.data.addWork.projectEndTime))){
        $.toast("请填写工程预估结束时间")
      }else if($.isNull(this.data.addWork.clockImg)){
        $.toast("请上传打卡照片")
      }else if($.isNull(this.data.addWork.entranceImg1) && $.isNull(this.data.addWork.entranceImg2) && $.isNull(this.data.addWork.entranceImg3)){
        $.toast("至少上传一张施工入场照片")
      }else if($.isNull(this.data.addWork.constructionImg1) && $.isNull(this.data.addWork.constructionImg2) && $.isNull(this.data.addWork.constructionImg3)){
        $.toast("至少上传一张施工中照片")
      }else if($.isNull(this.data.addWork.finishImg1) && $.isNull(this.data.addWork.finishImg2) && $.isNull(this.data.addWork.finishImg3)){
        $.toast("至少上传一张施工结束照片")
      }else{
            if(!$.isNull(this.data.addWork.coordinateIssue) && $.isNull(this.data.addWork.issueEndTime)){
              $.toast("请填写需协调问题的最迟解决时间")
              return;
            }
            if($.isNull(this.data.addWork.coordinateIssue) && !$.isNull(this.data.addWork.issueEndTime)){
              $.toast("请填写需协调问题")
              return;
            }
            var params=this.data.addWork;
            api.$post(api.projectManage.addWork,params).then((res)=>{
              $.toast("今日工作提交成功")
              this.setData({
                addWork: {
                  projectId:this.data.projectId,// 工程id
                  itemManage:"",// 项目监理
                  constructionUser:"",// 施工人员
                  constructionAddress:"",// 施工地点
                  workStartTime:"",// 工作开始时间
                  workEndTime:"",// 工作结束时间
                  workContent:"",// 今日工作内容
                  coordinateIssue:"",// 需协调问题
                  issueEndTime:"",// 问题结束时间
                  tomorrowPlan:"",// 明日工作计划
                  clockImg:"",// 打卡照片
                  entranceImg1:"",// 施工入场照片1
                  entranceImg2:"",// 施工入场照片2
                  entranceImg3:"",// 施工入场照片3
                  constructionImg1:"",// 施工中照片1
                  constructionImg2:"",// 施工中照片2
                  constructionImg3:"",// 施工中照片3
                  finishImg1:"",// 施工结束照片1
                  finishImg2:"",// 施工结束照片2
                  finishImg3:"",// 施工结束照片3
                  projectEndTime:"",// 工程预估结束时间
                  restDays:0,// 休息天数
                },
              })
          })
          setTimeout(() => {
            this._checkTodayTask();
          }, 1000);
      }
  },
  _startHandel(){
    this.setData({
      isShowStartProjectPanel:true,
    })
  },
  _finishHandel(){
    this.setData({
      isShowFinishProjectPanel:true,
    })
  },
  _startProject(){
    api.$get(api.projectManage.startProject,{"projectId":this.data.projectId}).then((res)=>{
        $.toast("项目已开工");
        this._getProject();
    })
  },
  _finishProject(){
    api.$get(api.projectManage.finishProject,{"projectId":this.data.projectId}).then((res)=>{
        $.toast("项目已完工");
        this._getProject();
    })
  },
  _checkTodayTask(){
    api.$get(api.projectManage.checkTodayTask,{"projectId":this.data.projectId}).then((res)=>{
      this.setData({
        isShowSubmitButton: res.data==0?true:false,
      })
    })
  },
  _getTaskDates(){
    api.$get(api.projectManage.taskDates,{"projectId":this.data.projectId}).then((res)=>{
      var dates=res.data;
      var list=[];
      var dateCookieFlag=false;
      for(var i=0;i<dates.length;i++){
        var item={
          type: dates[i],
          text:dates[i],
        }
        if(this.data.work.taskTime==dates[i]){
          dateCookieFlag=true;
        }
        list.push(item);
      }

      this.setData({
        pinkColumns: list.length>0?list:[{type:"",text:"暂无记录"}],
      })
      if(!dateCookieFlag){
        this.setData({
          "work.taskTime":list.length>0?list[0].type:"",
        })
      }
    })
  },
  _stations(){
    api.$get(api.projectManage.stations,{"projectId":this.data.projectId}).then((res)=>{
      this.setData({
        stationsList:res.data
      })
    })
  },
  _toFilesPage(e){
    var item=$.detail(e).item;
    console.log(item)
    $.linkurl(`/pages/document/index/index?id=${item.id}&title=${item.name}&deptId=${item.deptTreeId}`);
  },
  _banAdd(){
    $.toast("今日任务已提交,不可进行二次提交")
  },
  _banAdd1(){
    $.toast("项目已完结,无法进行工作提交")
  },
  //##input 输入##
  input_handle(e) {
    this.setData({
      [e.currentTarget.dataset.key]: e.detail.value
    })
  },
  //##input 输入##

  tabHanlde(e) {
    var { index } = e.currentTarget.dataset;
    console.log(e.currentTarget)
    console.log(index)
    if (index == this.data.currentTab) return
    this.setData({
      currentTab: index
    })
    switch (this.data.currentTab){
      case 1://工程详情
        this._getProject();
        break;
      case 2://工作详情
        this._getTaskDates();
        setTimeout(() => {
          this._getWork();
        }, 500);
        break;
      case 3://工作提交
        break;
      case 4://项目资料
        this._stations();
        break;
    }
  },
  upPicsHandle(e) { // ##图片组件传出来的数据##
    var { pics, key } = e.detail
    this.setData({
      [key]: pics.length>0?pics[0]:[]
    })
    console.log(e.detail)
    console.log(pics, key)
  },
  callHandle(e) {
    var { phone } = $.detail(e)
    $.call(phone)
  },
  
  pickerConfirmHandle(e){
    var { value, key, index } = e.detail
    this.setData({
      [key]: value.type
    })
    if(key=="work.taskTime"){
      this._getWork();
    }
  },

  pickerHandle(){//是否停电弹窗
    this.setData({
      isShowTimePicker:true
    })
},
startTimeHandle(){//开始时间弹窗
  this.setData({
    isShowTimeStart:true
  })
},
endTimeHandle(){//结束时间弹窗
    this,this.setData({
      isShowTimeEnd:true
    })
},
timeConfirmHandle(e){
  var { time, key } = e.detail
  if(key=="addWork.workStartTime"|| key=="addWork.workEndTime"){
    if($.transformTime().slice(0, 10) === time.slice(0, 10)){
  
    }else{
      $.toast('仅限今日时间,请选择今日时间');
      return;
    };
  }

  this.setData({
    [key]: time
  })

  if(!$.isNull(this.data.addWork.workStartTime) && ! $.isNull(this.data.addWork.workEndTime)){
        var startTime= new Date(Date.parse(this.data.addWork.workStartTime));
        var endTime=new Date(Date.parse(this.data.addWork.workEndTime));
        if(startTime>=endTime){
            $.toast('开始时间不能大于结束时间')
            this.setData({
              [key]: ''
            })
        }
  }
},

textarea_blur_handle1() { //解决textarea placeholder 层级过高的bug 微信好坑
  this.setData({
    isFocus1: false,
    isShowTextarea1: false
  })
},
textarea_blur_handle2() { //解决textarea placeholder 层级过高的bug 微信好坑
  this.setData({
    isFocus2: false,
    isShowTextarea2: false
  })
},
textarea_blur_handle3() { //解决textarea placeholder 层级过高的bug 微信好坑
  this.setData({
    isFocus3: false,
    isShowTextarea3: false
  })
},
toFocusHandle1() { //解决textarea placeholder 层级过高的bug 微信好坑 
  this.setData({
    isShowTextarea1: true
  })
  setTimeout(() => {
    this.setData({
      isFocus1: true
    })
  }, 100)
},
toFocusHandle2() { //解决textarea placeholder 层级过高的bug 微信好坑 
  this.setData({
    isShowTextarea2: true
  })
  setTimeout(() => {
    this.setData({
      isFocus2: true
    })
  }, 100)
},
toFocusHandle3() { //解决textarea placeholder 层级过高的bug 微信好坑 
  this.setData({
    isShowTextarea3: true
  })
  setTimeout(() => {
    this.setData({
      isFocus3: true
    })
  }, 100)
},
issueEndTimeHandle(){
  this.setData({
    isShowIssueEndTime:true
  })
},
projectEndTimeHandle(){
  this.setData({
    isShowProjectEndTime:true
  })
}
})